Stack スタック
一時的にデータを蓄えるときに使うデータ構造 Data Structure
規則
LIFO 後入れ先出し
データの中で最後に入ったものが最初に取り出される
操作
push プッシュ data
pop ポップ data
規則
データの中で最後に入ったものが最初に取り出される
用途
詳細
LIFO 後入れ先出し
push プッシュ data
データを入れる
スタックの先頭に追加
実装方法 xを追加
片方向リスト singly-linked list xポインタ
top,x:ポインタ
x.next←top
top←x
配列 Array x番
top: 配列内での頂上を表す添字,N:配列サイズ
topは空
s[top]←x
top←top+1
問題
スタックのoverflow オーバーフロー
スタックが満杯で追加できない
pop ポップ data
データを取り出す
スタックの先頭の要素を取り出す
実装方法 x 削除
片方向リスト singly-linked list xポインタ
top,x:ポインタ,
x←top
top←top.next
x return
取り出して、返す
配列 Array x番
top: 配列内での頂上を表す添字,N:配列サイズ
top←top-1
x←s[top]
s[top]をクリア
x return
問題
スタックのunderflow アンダーフロー
スタックが空で削除できない
近い
Queue キュー
参考
スタックとキューを極める! 〜 考え方と使い所を特集 〜 - Qiita